package com.stary.code.springboot.rules;

import java.nio.charset.Charset;

/**
 * 定义常量
 * @author stary
 * @date 2018年6月29日 上午8:45:47
 */
public class Constants {		
	/**
	 * 默认的临时文件路径
	 */
	public static final String JAVA_TMPDIR = "java.io.tmpdir";
	/**
	 * 编码集 UTF-8
	 */
	public static final String UTF8 = Charset.forName("UTF-8").name();

	/**
	 * java文件后缀
	 */
	public static final String JAVA_SUFFIX = ".java";
	/**
	 * properties文件后缀
	 */
	public static final String PROPERTIES_SUFFIX = ".properties";
	/**
	 * xml文件后缀
	 */
	public static final String XML_SUFFIX = ".xml";
	/**
	 * vm文件后缀
	 */
	public static final String VM_SUFFIX = ".vm";
	/**
	 * sql文件后缀
	 */
	public static final String SQL_SUFFIX = ".sql";
	/**
	 * word doc文件后缀
	 */
	public static final String DOC_SUFFIX = ".doc";

	/**
	 * 加载classpath目录下的vm文件 KEY
	 */
	public static final String VM_LOADPATH_KEY = "file.resource.loader.class";
	/**
	 * 加载classpath目录下的vm文件 VALUE
	 */
	public static final String VM_LOADPATH_VALUE = "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader";

	/**
	 * pom.xml模板
	 */
	public static final String TEMPLATE_POM="/templates/pom.xml";
	/**
	 * pom.xml名
	 */
	public static final String POM = "pom";
	/**
	 * logback-spring.xml模板
	 */
	public static final String TEMPLATE_LOGBACK_SPRING="/templates/logback/logback-spring.xml";
	/**
	 * logback-spring
	 */
	public static final String LOGBACK_SPRING = "logback-spring";
	/**
	 * spring boot 开发启动器模板
	 */
	public static final String TEMPLATE_APPLICATION="/templates/application.java";
	/**
	 * SpringBoot 开发启动器类名
	 */
	public static final String APPLICATION = "Application";
	/**
	 * spring boot web启动器模板
	 */
	public static final String TEMPLATE_SPRING_BOOT_APPLICATION="/templates/springBootStartApplication.java";
	/**
	 * SpringBoot web启动器类名
	 */
	public static final String SPRING_BOOT_APPLICATION = "SpringBootStartApplication";
	/**
	 * application.properties 配置属性文件模板
	 */
	public static final String TEMPLATE_APPLICATION_PRO="/templates/application.properties";
	/**
	 * application.properties名
	 */
	public static final String APPLICATION_PRO = "application";
	/**
	 * application-dev.properties 配置属性文件模板
	 */
	public static final String TEMPLATE_APPLICATION_PRO_DEV="/templates/application-dev.properties";
	/**
	 * application-dev.properties名
	 */
	public static final String APPLICATION_PRO_DEV = "application-dev";
	/**
	 * application-prod.properties 配置属性文件模板
	 */
	public static final String TEMPLATE_APPLICATION_PRO_PROD="/templates/application-prod.properties";
	/**
	 * application-prod.properties名
	 */
	public static final String APPLICATION_PRO_PROD = "application-prod";
	/**
	 * druidDataSourceConfig模板
	 */
	public static final String TEMPLATE_DRUID_DATASOURCE_CONFIG="/templates/db-pool/druidDataSourceConfig.java";
	/**
	 * DruidDataSourceConfig类名
	 */
	public static final String DRUID_DATASOURCE_CONFIG = "DruidDataSourceConfig";
	/**
	 * myBatisPlusConfig模板
	 */
	public static final String TEMPLATE_MY_BATIS_PLUS_CONFIG="/templates/mybatis-plus/myBatisPlusConfig.java";
	/**
	 * MyBatisPlusConfig类名
	 */
	public static final String MY_BATIS_PLUS_CONFIG = "MyBatisPlusConfig";

	/**
	 * jsp 文件路径
	 */
	public static final String TEMPLATE_JSP="WEB-INF";
	/**
	 * /JSP
	 */
	public static final String JSP = "jsp";
	/**
	 * /templates
	 */
	public static final String TEMPLATES = "templates";
	/**
	 * /static
	 */
	public static final String STATIC = "static";
	/**
	 * /test
	 */
	public static final String TEST = "test";  
	/**
	 * redisConfig模板
	 */
	public static final String TEMPLATE_REDIS_CONFIG="/templates/redis/redisConfig.java";   
	/**
	 * RedisConfig类名
	 */
	public static final String REDIS_CONFIG = "RedisConfig";
	/**
	 * redisService模板
	 */
	public static final String TEMPLATE_REDIS_SERVICE="/templates/redis/redisService.java";   
	/**
	 * RedisService类名
	 */
	public static final String REDIS_SERVICE = "RedisService";
	/**
	 * redisServiceImpl模板
	 */
	public static final String TEMPLATE_REDIS_SERVICE_IMPL="/templates/redis/redisServiceImpl.java";   
	/**
	 * RedisServiceImpl类名
	 */
	public static final String REDIS_SERVICE_IMPL = "RedisServiceImpl";
	/**
	 * mongoDBService模板
	 */
	public static final String TEMPLATE_MONGODB_SERVICE="/templates/mongodb/mongoDBService.java";   
	/**
	 * MongoDBService类名
	 */
	public static final String MONGODB_SERVICE = "MongoDBService";
	/**
	 * mongoDBServiceImpl模板
	 */
	public static final String TEMPLATE_MONGODB_SERVICE_IMPL="/templates/mongodb/mongoDBServiceImpl.java";   
	/**
	 * MongoDBServiceImpl类名
	 */
	public static final String MONGODB_SERVICE_IMPL = "MongoDBServiceImpl";
	/**
	 * mongoDB page模板
	 */
	public static final String TEMPLATE_MONGODB_PAGE="/templates/mongodb/page.java";   
	/**
	 * mongoDB Page类名
	 */
	public static final String MONGODB_PAGE = "Page";
	/**
	 * mongoDB reflectionUtils模板
	 */
	public static final String TEMPLATE_MONGODB_REFLECTIONUTILS = "/templates/mongodb/reflectionUtils.java";   
	/**
	 * mongoDB ReflectionUtils类名
	 */
	public static final String MONGODB_REFLECTIONUTILS = "ReflectionUtils";
	/**
	 * Mail 类名
	 */
	public static final String MAIL="Mail";
	/**
	 * mail 模板
	 */
	public static final String TEMPLATE_MAIL="/templates/mail/mail.java";
	/**
	 * MailService 类名
	 */
	public static final String MAIL_SERVICE="MailService";
	/**
	 * mailService 模板
	 */
	public static final String TEMPLATE_MAIL_SERVICE="/templates/mail/mailService.java";
	/**
	 * MailServiceImpl 类名
	 */
	public static final String MAIL_SERVICE_IMPL="MailServiceImpl";
	/**
	 * mailServiceImpl 模板
	 */
	public static final String TEMPLATE_MAIL_SERVICE_IMPL="/templates/mail/mailServiceImpl.java";
	/**
	 * ShiroConfig 类名
	 */
	public static final String SHIRO_CONFIG = "ShiroConfig";
	/**
	 * shiroConfig 模板
	 */
	public static final String TEMPLATE_SHIRO_CONFIG = "/templates/shiro/shiroConfig.java";
	/**
	 * ShiroRealm类名
	 */
	public static final String SHIRO_REALM = "ShiroRealm";
	/**
	 * shiroRealm 模板
	 */
	public static final String TEMPLATE_SHIRO_REALM = "/templates/shiro/shiroRealm.java";
	/**
	 * ehcache-shiro.xml 名
	 */
	public static final String EHCACHE_SHIRO = "ehcache-shiro";
	/**
	 * ehcache-shiro.xml 模板
	 */
	public static final String TEMPLATE_EHCACHE_SHIRO = "/templates/shiro/ehcache-shiro.xml";
	/**
	 * ShiroTagFreemarkerConfig 类名
	 */
	public static final String SHIRO_TAG_FREEMARKER_CONFIG="ShiroTagFreemarkerConfig";
	/**
	 * shiroTagFreemarkerConfig.java 模板
	 */
	public static final String TEMPLATE_SHIRO_TAG_FREEMARKER_CONFIG="/templates/shiro/shiroTagFreemarkerConfig.java";

	/**
	 * ShiroUtils类名
	 */
	public static final String SHIRO_UTILS = "ShiroUtils";
	/**
	 * shiroUtils 模板
	 */
	public static final String TEMPLATE_SHIRO_UTILS = "/templates/shiro/shiroUtils.java";
	/**
	 * ScheduleConfig类名
	 */
	public static final String SCHEDULE_CONFIG="ScheduleConfig";
	/**
	 * scheduleConfig 模板
	 */
	public static final String TEMPLATE_SCHEDULE_CONFIG="/templates/schedule/scheduleConfig.java";
	/**
	 * DynamicScheduleTask类名
	 */
	public static final String SCHEDULE_DYNAMIC_TASK="DynamicScheduleTask";
	/**
	 * dynamicScheduleTask 模板
	 */
	public static final String TEMPLATE_SCHEDULE_DYNAMIC_TASK="/templates/schedule/dynamicScheduleTask.java";
	/**
	 * QuartzConfig类名
	 */
	public static final String QUARTZ_CONFIG="QuartzConfig";
	/**
	 * quartzConfig 模板
	 */
	public static final String TEMPLATE_QUARTZ_CONFIG="/templates/quartz/quartzConfig.java";
	/**
	 * QuartzService类名
	 */
	public static final String QUARTZ_SERVICE="QuartzService";
	/**
	 * quartzService 模板
	 */
	public static final String TEMPLATE_QUARTZ_SERVICE="/templates/quartz/quartzService.java";
	/**
	 * QuartzServiceImpl类名
	 */
	public static final String QUARTZ_SERVICE_IMPL="QuartzServiceImpl";
	/**
	 * quartzServiceImpl 模板
	 */
	public static final String TEMPLATE_QUARTZ_SERVICE_IMPL="/templates/quartz/quartzServiceImpl.java";
	/**
	 * quartz.properties名
	 */
	public static final String QUARTZ="quartz";
	/**
	 * quartz.properties 模板
	 */
	public static final String TEMPLATE_QUARTZ="/templates/quartz/quartz.properties";
	/**
	 * TaskInfo类名
	 */
	public static final String QUARTZ_TASKINFO="TaskInfo";
	/**
	 * taskInfo 模板
	 */
	public static final String TEMPLATE_QUARTZ_TASKINFO="/templates/quartz/taskInfo.java";
	/**
	 * TaskJob类名
	 */
	public static final String QUARTZ_TASKJOB="TaskJob";
	/**
	 * taskJob 模板
	 */
	public static final String TEMPLATE_QUARTZ_TASKJOB="/templates/quartz/taskJob.java";
	/**
	 * tables_oracle.sql 名
	 */
	public static final String QUARTZ_TABLES_ORACLE="tables_oracle";
	/**
	 * tables_oracle.sql 模板
	 */
	public static final String TEMPLATE_QUARTZ_TABLES_ORACLE="/templates/quartz/db-tables/tables_oracle.sql";
	/**
	 * tables_mysql_innodb.sql 名
	 */
	public static final String QUARTZ_TABLES_MYSQL="tables_mysql_innodb";
	/**
	 * tables_mysql_innodb.sql 模板
	 */
	public static final String TEMPLATE_QUARTZ_TABLES_MYSQL="/templates/quartz/db-tables/tables_mysql_innodb.sql";
	/**
	 * tables_sqlServer.sql 名
	 */
	public static final String QUARTZ_TABLES_SQL_SERVER="tables_sqlServer";
	/**
	 * tables_sqlServer.sql 模板
	 */
	public static final String TEMPLATE_QUARTZ_TABLES_SQL_SERVER="/templates/quartz/db-tables/tables_sqlServer.sql";
	
	/**
	 * ActiveMQConfig名
	 */
	public static final String ACTIVEMQ_CONFIG="ActiveMQConfig";
	/**
	 * activeMQConfig.java 模板
	 */
	public static final String TEMPLATE_ACTIVEMQ_CONFIG="/templates/activemq/activeMQConfig.java";
	/**
	 * ActiveMQConsumer名
	 */
	public static final String ACTIVEMQ_CONSUMER="ActiveMQConsumer";
	/**
	 * activeMQConsumer.java 模板
	 */
	public static final String TEMPLATE_ACTIVEMQ_CONSUMER="/templates/activemq/activeMQConsumer.java";
	/**
	 * ActiveMQProducer名
	 */
	public static final String ACTIVEMQ_PRODUCER="ActiveMQProducer";
	/**
	 * activeMQProducer.java 模板
	 */
	public static final String TEMPLATE_ACTIVEMQ_PRODUCER="/templates/activemq/activeMQProducer.java";
	/**
	 * KafkaConsumer名
	 */
	public static final String KAFKA_CONSUMER="KafkaConsumer";
	/**
	 * kafkaConsumer.java 模板
	 */
	public static final String TEMPLATE_KAFKA_CONSUMER="/templates/kafka/kafkaConsumer.java";
	/**
	 * KafkaProducer名
	 */
	public static final String KAFKA_PRODUCER="KafkaProducer";
	/**
	 * kafkaProducer.java 模板
	 */
	public static final String TEMPLATE_KAFKA_PRODUCER="/templates/kafka/kafkaProducer.java";

	/**
	 * RabbitMQConfig名
	 */
	public static final String RABBITMQ_CONFIG="RabbitMQConfig";
	/**
	 * rabbitMQConfig.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_CONFIG="/templates/rabbitmq/rabbitMQConfig.java";
	/**
	 * RabbitMQDirectProducer名
	 */
	public static final String RABBITMQ_DIRECT_PRODUCER="RabbitMQDirectProducer";
	/**
	 * rabbitMQDirectProducer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_DIRECT_PRODUCER="/templates/rabbitmq/direct/rabbitMQDirectProducer.java";
	/**
	 * RabbitMQDirectConsumer名
	 */
	public static final String RABBITMQ_DIRECT_CONSUMER="RabbitMQDirectConsumer";
	/**
	 * rabbitMQDirectConsumer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_DIRECT_CONSUMER="/templates/rabbitmq/direct/rabbitMQDirectConsumer.java";
	/**
	 * RabbitMQFanoutConsumer1名
	 */
	public static final String RABBITMQ_FANOUT_CONSUMER_1="RabbitMQFanoutConsumer1";
	/**
	 * rabbitMQFanoutConsumer1.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_FANOUT_CONSUMER_1="/templates/rabbitmq/fanout/rabbitMQFanoutConsumer1.java";
	/**
	 * RabbitMQFanoutConsumer2名
	 */
	public static final String RABBITMQ_FANOUT_CONSUMER_2="RabbitMQFanoutConsumer2";
	/**
	 * rabbitMQFanoutConsumer2.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_FANOUT_CONSUMER_2="/templates/rabbitmq/fanout/rabbitMQFanoutConsumer2.java";
	/**
	 * RabbitMQFanoutProducer名
	 */
	public static final String RABBITMQ_FANOUT_PRODUCER="RabbitMQFanoutProducer";
	/**
	 * rabbitMQFanoutProducer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_FANOUT_PRODUCER="/templates/rabbitmq/fanout/rabbitMQFanoutProducer.java";
	/**
	 * RabbitMQTopicProducer名
	 */
	public static final String RABBITMQ_TOPIC_PRODUCER="RabbitMQTopicProducer";
	/**
	 * rabbitMQTopicProducer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_TOPIC_PRODUCER="/templates/rabbitmq/topic/rabbitMQTopicProducer.java";
	/**
	 * RabbitMQTopicConsumer名
	 */
	public static final String RABBITMQ_TOPIC_CONSUMER="RabbitMQTopicConsumer";
	/**
	 * rabbitMQTopicConsumer.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_TOPIC_CONSUMER="/templates/rabbitmq/topic/rabbitMQTopicConsumer.java";
	/**
	 * RabbitMQTopicConsumers名
	 */
	public static final String RABBITMQ_TOPIC_CONSUMERS="RabbitMQTopicConsumers";
	/**
	 * rabbitMQTopicConsumers.java 模板
	 */
	public static final String TEMPLATE_RABBITMQ_TOPIC_CONSUMERS="/templates/rabbitmq/topic/rabbitMQTopicConsumers.java";
	/**
	 * table_doc.xml 模板名
	 */
	public static final String TABLE_DOC="tables_doc";
	/**
	 * table_doc.xml 模板
	 */
	public static final String TEMPLATE_TABLE_DOC="/templates/tables-doc/tables_doc.xml";
}
